{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# read adult data.txt as train, adult test.txt as test, rename their headers to ['age', 'workclass', 'fnlwgt', \n",
    "#'education', 'education_num', 'marital_status', 'occupation', \n",
    "# 'relationship', 'race', 'sex', 'capital_gain', 'capital_loss', 'hours_per_week', 'native_country', 'wage_class']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train_set = pd.read_csv('adult data.txt', header = None)\n",
    "test_set = pd.read_csv('adult test.txt', header = None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "col_labels = ['age', 'workclass', 'fnlwgt', 'education', 'education_num', 'marital_status', 'occupation', \n",
    "              'relationship', 'race', 'sex', 'capital_gain', 'capital_loss', 'hours_per_week', 'native_country',\n",
    "             'wage_class']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train_set.columns = col_labels\n",
    "test_set.columns = col_labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>workclass</th>\n",
       "      <th>fnlwgt</th>\n",
       "      <th>education</th>\n",
       "      <th>education_num</th>\n",
       "      <th>marital_status</th>\n",
       "      <th>occupation</th>\n",
       "      <th>relationship</th>\n",
       "      <th>race</th>\n",
       "      <th>sex</th>\n",
       "      <th>capital_gain</th>\n",
       "      <th>capital_loss</th>\n",
       "      <th>hours_per_week</th>\n",
       "      <th>native_country</th>\n",
       "      <th>wage_class</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>39</td>\n",
       "      <td>State-gov</td>\n",
       "      <td>77516</td>\n",
       "      <td>Bachelors</td>\n",
       "      <td>13</td>\n",
       "      <td>Never-married</td>\n",
       "      <td>Adm-clerical</td>\n",
       "      <td>Not-in-family</td>\n",
       "      <td>White</td>\n",
       "      <td>Male</td>\n",
       "      <td>2174</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>United-States</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>50</td>\n",
       "      <td>Self-emp-not-inc</td>\n",
       "      <td>83311</td>\n",
       "      <td>Bachelors</td>\n",
       "      <td>13</td>\n",
       "      <td>Married-civ-spouse</td>\n",
       "      <td>Exec-managerial</td>\n",
       "      <td>Husband</td>\n",
       "      <td>White</td>\n",
       "      <td>Male</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>13</td>\n",
       "      <td>United-States</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>38</td>\n",
       "      <td>Private</td>\n",
       "      <td>215646</td>\n",
       "      <td>HS-grad</td>\n",
       "      <td>9</td>\n",
       "      <td>Divorced</td>\n",
       "      <td>Handlers-cleaners</td>\n",
       "      <td>Not-in-family</td>\n",
       "      <td>White</td>\n",
       "      <td>Male</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>United-States</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>53</td>\n",
       "      <td>Private</td>\n",
       "      <td>234721</td>\n",
       "      <td>11th</td>\n",
       "      <td>7</td>\n",
       "      <td>Married-civ-spouse</td>\n",
       "      <td>Handlers-cleaners</td>\n",
       "      <td>Husband</td>\n",
       "      <td>Black</td>\n",
       "      <td>Male</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>United-States</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>28</td>\n",
       "      <td>Private</td>\n",
       "      <td>338409</td>\n",
       "      <td>Bachelors</td>\n",
       "      <td>13</td>\n",
       "      <td>Married-civ-spouse</td>\n",
       "      <td>Prof-specialty</td>\n",
       "      <td>Wife</td>\n",
       "      <td>Black</td>\n",
       "      <td>Female</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>Cuba</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age          workclass  fnlwgt   education  education_num  \\\n",
       "0   39          State-gov   77516   Bachelors             13   \n",
       "1   50   Self-emp-not-inc   83311   Bachelors             13   \n",
       "2   38            Private  215646     HS-grad              9   \n",
       "3   53            Private  234721        11th              7   \n",
       "4   28            Private  338409   Bachelors             13   \n",
       "\n",
       "        marital_status          occupation    relationship    race      sex  \\\n",
       "0        Never-married        Adm-clerical   Not-in-family   White     Male   \n",
       "1   Married-civ-spouse     Exec-managerial         Husband   White     Male   \n",
       "2             Divorced   Handlers-cleaners   Not-in-family   White     Male   \n",
       "3   Married-civ-spouse   Handlers-cleaners         Husband   Black     Male   \n",
       "4   Married-civ-spouse      Prof-specialty            Wife   Black   Female   \n",
       "\n",
       "   capital_gain  capital_loss  hours_per_week  native_country wage_class  \n",
       "0          2174             0              40   United-States      <=50K  \n",
       "1             0             0              13   United-States      <=50K  \n",
       "2             0             0              40   United-States      <=50K  \n",
       "3             0             0              40   United-States      <=50K  \n",
       "4             0             0              40            Cuba      <=50K  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_set.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(9674, 15)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_set.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>workclass</th>\n",
       "      <th>fnlwgt</th>\n",
       "      <th>education</th>\n",
       "      <th>education_num</th>\n",
       "      <th>marital_status</th>\n",
       "      <th>occupation</th>\n",
       "      <th>relationship</th>\n",
       "      <th>race</th>\n",
       "      <th>sex</th>\n",
       "      <th>capital_gain</th>\n",
       "      <th>capital_loss</th>\n",
       "      <th>hours_per_week</th>\n",
       "      <th>native_country</th>\n",
       "      <th>wage_class</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>25</td>\n",
       "      <td>Private</td>\n",
       "      <td>226802</td>\n",
       "      <td>11th</td>\n",
       "      <td>7</td>\n",
       "      <td>Never-married</td>\n",
       "      <td>Machine-op-inspct</td>\n",
       "      <td>Own-child</td>\n",
       "      <td>Black</td>\n",
       "      <td>Male</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>United-States</td>\n",
       "      <td>&lt;=50K.</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>38</td>\n",
       "      <td>Private</td>\n",
       "      <td>89814</td>\n",
       "      <td>HS-grad</td>\n",
       "      <td>9</td>\n",
       "      <td>Married-civ-spouse</td>\n",
       "      <td>Farming-fishing</td>\n",
       "      <td>Husband</td>\n",
       "      <td>White</td>\n",
       "      <td>Male</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>United-States</td>\n",
       "      <td>&lt;=50K.</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>28</td>\n",
       "      <td>Local-gov</td>\n",
       "      <td>336951</td>\n",
       "      <td>Assoc-acdm</td>\n",
       "      <td>12</td>\n",
       "      <td>Married-civ-spouse</td>\n",
       "      <td>Protective-serv</td>\n",
       "      <td>Husband</td>\n",
       "      <td>White</td>\n",
       "      <td>Male</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>United-States</td>\n",
       "      <td>&gt;50K.</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>44</td>\n",
       "      <td>Private</td>\n",
       "      <td>160323</td>\n",
       "      <td>Some-college</td>\n",
       "      <td>10</td>\n",
       "      <td>Married-civ-spouse</td>\n",
       "      <td>Machine-op-inspct</td>\n",
       "      <td>Husband</td>\n",
       "      <td>Black</td>\n",
       "      <td>Male</td>\n",
       "      <td>7688.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>United-States</td>\n",
       "      <td>&gt;50K.</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>18</td>\n",
       "      <td>?</td>\n",
       "      <td>103497</td>\n",
       "      <td>Some-college</td>\n",
       "      <td>10</td>\n",
       "      <td>Never-married</td>\n",
       "      <td>?</td>\n",
       "      <td>Own-child</td>\n",
       "      <td>White</td>\n",
       "      <td>Female</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>United-States</td>\n",
       "      <td>&lt;=50K.</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age   workclass  fnlwgt      education  education_num       marital_status  \\\n",
       "0   25     Private  226802           11th              7        Never-married   \n",
       "1   38     Private   89814        HS-grad              9   Married-civ-spouse   \n",
       "2   28   Local-gov  336951     Assoc-acdm             12   Married-civ-spouse   \n",
       "3   44     Private  160323   Some-college             10   Married-civ-spouse   \n",
       "4   18           ?  103497   Some-college             10        Never-married   \n",
       "\n",
       "           occupation relationship    race      sex  capital_gain  \\\n",
       "0   Machine-op-inspct    Own-child   Black     Male           0.0   \n",
       "1     Farming-fishing      Husband   White     Male           0.0   \n",
       "2     Protective-serv      Husband   White     Male           0.0   \n",
       "3   Machine-op-inspct      Husband   Black     Male        7688.0   \n",
       "4                   ?    Own-child   White   Female           0.0   \n",
       "\n",
       "   capital_loss  hours_per_week  native_country wage_class  \n",
       "0           0.0            40.0   United-States     <=50K.  \n",
       "1           0.0            50.0   United-States     <=50K.  \n",
       "2           0.0            40.0   United-States      >50K.  \n",
       "3           0.0            40.0   United-States      >50K.  \n",
       "4           0.0            30.0   United-States     <=50K.  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_set.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(11182, 15)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_set.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 9674 entries, 0 to 9673\n",
      "Data columns (total 15 columns):\n",
      "age               9674 non-null int64\n",
      "workclass         9674 non-null object\n",
      "fnlwgt            9674 non-null int64\n",
      "education         9674 non-null object\n",
      "education_num     9674 non-null int64\n",
      "marital_status    9674 non-null object\n",
      "occupation        9674 non-null object\n",
      "relationship      9674 non-null object\n",
      "race              9674 non-null object\n",
      "sex               9674 non-null object\n",
      "capital_gain      9674 non-null int64\n",
      "capital_loss      9674 non-null int64\n",
      "hours_per_week    9674 non-null int64\n",
      "native_country    9673 non-null object\n",
      "wage_class        9673 non-null object\n",
      "dtypes: int64(6), object(9)\n",
      "memory usage: 1.1+ MB\n"
     ]
    }
   ],
   "source": [
    "train_set.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# replace ‘ ?’ with nan and drop na "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8936, 15)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_set.replace(' ?', np.nan).dropna().shape "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10347, 15)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_set.replace(' ?', np.nan).dropna().shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train_nomissing = train_set.replace(' ?', np.nan).dropna()\n",
    "test_nomissing = test_set.replace(' ?', np.nan).dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#replace test wage_class all of the ‘<=50K.’ with ‘<=50K’ and the same for ‘>50K.’ with ‘>50K’, same as train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([' <=50K.', ' >50K.'], dtype=object)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_nomissing.wage_class.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([' <=50K', ' >50K'], dtype=object)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_nomissing.wage_class.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "test_nomissing['wage_class'] = test_nomissing.wage_class.replace({' <=50K.': ' <=50K', ' >50K.':' >50K'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([' <=50K', ' >50K'], dtype=object)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_nomissing.wage_class.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#Applying Ordinal Encoding to Categoricals for both train and test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "combined_set = pd.concat([train_nomissing, test_nomissing], axis = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 19283 entries, 0 to 11180\n",
      "Data columns (total 15 columns):\n",
      "age               19283 non-null int64\n",
      "workclass         19283 non-null object\n",
      "fnlwgt            19283 non-null int64\n",
      "education         19283 non-null object\n",
      "education_num     19283 non-null int64\n",
      "marital_status    19283 non-null object\n",
      "occupation        19283 non-null object\n",
      "relationship      19283 non-null object\n",
      "race              19283 non-null object\n",
      "sex               19283 non-null object\n",
      "capital_gain      19283 non-null float64\n",
      "capital_loss      19283 non-null float64\n",
      "hours_per_week    19283 non-null float64\n",
      "native_country    19283 non-null object\n",
      "wage_class        19283 non-null object\n",
      "dtypes: float64(3), int64(3), object(9)\n",
      "memory usage: 2.4+ MB\n"
     ]
    }
   ],
   "source": [
    "combined_set.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "for feature in combined_set.columns: # Loop through all columns in the dataframe\n",
    "    if combined_set[feature].dtype == 'object': # Only apply for columns with categorical strings\n",
    "        combined_set[feature] = pd.Categorical(combined_set[feature]).codes "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 19283 entries, 0 to 11180\n",
      "Data columns (total 15 columns):\n",
      "age               19283 non-null int64\n",
      "workclass         19283 non-null int8\n",
      "fnlwgt            19283 non-null int64\n",
      "education         19283 non-null int8\n",
      "education_num     19283 non-null int64\n",
      "marital_status    19283 non-null int8\n",
      "occupation        19283 non-null int8\n",
      "relationship      19283 non-null int8\n",
      "race              19283 non-null int8\n",
      "sex               19283 non-null int8\n",
      "capital_gain      19283 non-null float64\n",
      "capital_loss      19283 non-null float64\n",
      "hours_per_week    19283 non-null float64\n",
      "native_country    19283 non-null int8\n",
      "wage_class        19283 non-null int8\n",
      "dtypes: float64(3), int64(3), int8(9)\n",
      "memory usage: 1.2 MB\n"
     ]
    }
   ],
   "source": [
    "combined_set.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "final_train = combined_set[:train_nomissing.shape[0]] # Up to the last initial training set row\n",
    "final_test = combined_set[train_nomissing.shape[0]:] # Past the last initial training set row"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# build xgboost: wage_class is the response variable, and others are predictors\n",
    "# ues bayesian to find the best combination of tunning parameters:\n",
    "# 'max_depth': (3,7) 'min_child_weight': (1,5), 'learning_rate': (0.01, 0.1), 'subsample': (0.7,0.9)\n",
    "# 'colsample_bytree': (0.7,0.9), 'n_estimators': (1000, 2000), ' 'gamma': (0.01,1.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y_train = final_train.pop('wage_class')\n",
    "y_test = final_test.pop('wage_class')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "import xgboost as xgb\n",
    "from xgboost.sklearn import XGBClassifier\n",
    "from __future__ import print_function\n",
    "from __future__ import division\n",
    "import xgboost as xgb\n",
    "from sklearn.cross_validation import cross_val_score\n",
    "from bayes_opt import bayesian_optimization\n",
    "import sklearn.cross_validation as cv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:52: DeprecationWarning: Class GaussianProcess is deprecated; GaussianProcess was deprecated in version 0.18 and will be removed in 0.20. Use the GaussianProcessRegressor instead.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[31mInitialization\u001b[0m\n",
      "\u001b[94m--------------------------------------------------------------------------------------------------------------------------------------------------\u001b[0m\n",
      " Step |   Time |      Value |   colsample_bytree |     gamma |   learning_rate |   max_depth |   min_child_weight |   n_estimators |   subsample | \n",
      "    1 | 00m42s | \u001b[35m   0.91391\u001b[0m | \u001b[32m            0.8304\u001b[0m | \u001b[32m   0.1281\u001b[0m | \u001b[32m         0.0385\u001b[0m | \u001b[32m     4.5238\u001b[0m | \u001b[32m            3.5395\u001b[0m | \u001b[32m     1689.7866\u001b[0m | \u001b[32m     0.7894\u001b[0m | \n",
      "    2 | 00m35s | \u001b[35m   0.92052\u001b[0m | \u001b[32m            0.7032\u001b[0m | \u001b[32m   0.1376\u001b[0m | \u001b[32m         0.0159\u001b[0m | \u001b[32m     3.9450\u001b[0m | \u001b[32m            1.2156\u001b[0m | \u001b[32m     1833.7834\u001b[0m | \u001b[32m     0.7231\u001b[0m | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:70: DeprecationWarning: Function l1_cross_distances is deprecated; l1_cross_distances was deprecated in version 0.18 and will be removed in 0.20.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[31mBayesian Optimization\u001b[0m\n",
      "\u001b[94m--------------------------------------------------------------------------------------------------------------------------------------------------\u001b[0m\n",
      " Step |   Time |      Value |   colsample_bytree |     gamma |   learning_rate |   max_depth |   min_child_weight |   n_estimators |   subsample | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:70: DeprecationWarning: Function l1_cross_distances is deprecated; l1_cross_distances was deprecated in version 0.18 and will be removed in 0.20.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    3 | 00m58s |    0.90503 |             0.8849 |    0.5118 |          0.0639 |      5.9862 |             1.5204 |      1649.0575 |      0.8650 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:70: DeprecationWarning: Function l1_cross_distances is deprecated; l1_cross_distances was deprecated in version 0.18 and will be removed in 0.20.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    4 | 00m56s |    0.90842 |             0.7497 |    0.3593 |          0.0443 |      5.6986 |             3.5374 |      1777.8757 |      0.8223 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:70: DeprecationWarning: Function l1_cross_distances is deprecated; l1_cross_distances was deprecated in version 0.18 and will be removed in 0.20.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    5 | 00m31s |    0.91560 |             0.7237 |    0.2875 |          0.0585 |      3.4329 |             1.7541 |      1522.2615 |      0.8692 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:70: DeprecationWarning: Function l1_cross_distances is deprecated; l1_cross_distances was deprecated in version 0.18 and will be removed in 0.20.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    6 | 00m50s |    0.90308 |             0.8472 |    0.4947 |          0.0727 |      6.6580 |             2.1275 |      1325.8658 |      0.8177 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:70: DeprecationWarning: Function l1_cross_distances is deprecated; l1_cross_distances was deprecated in version 0.18 and will be removed in 0.20.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    7 | 00m36s |    0.91578 |             0.7919 |    0.4780 |          0.0315 |      4.9630 |             1.3780 |      1555.5315 |      0.7611 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:70: DeprecationWarning: Function l1_cross_distances is deprecated; l1_cross_distances was deprecated in version 0.18 and will be removed in 0.20.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    8 | 00m25s |    0.91601 |             0.7895 |    0.4711 |          0.0470 |      3.6597 |             4.5149 |      1379.9106 |      0.7274 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:70: DeprecationWarning: Function l1_cross_distances is deprecated; l1_cross_distances was deprecated in version 0.18 and will be removed in 0.20.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    9 | 00m24s |    0.91658 |             0.8334 |    0.9177 |          0.0426 |      4.2331 |             4.0024 |      1010.3409 |      0.8377 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:70: DeprecationWarning: Function l1_cross_distances is deprecated; l1_cross_distances was deprecated in version 0.18 and will be removed in 0.20.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   10 | 01m01s |    0.90924 |             0.8032 |    0.1593 |          0.0298 |      6.2328 |             4.6000 |      1865.3065 |      0.8136 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:70: DeprecationWarning: Function l1_cross_distances is deprecated; l1_cross_distances was deprecated in version 0.18 and will be removed in 0.20.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   11 | 00m51s |    0.90656 |             0.7482 |    0.9604 |          0.0764 |      6.2054 |             4.0372 |      1399.4018 |      0.8511 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/shuozhang/anaconda/lib/python2.7/site-packages/sklearn/utils/deprecation.py:70: DeprecationWarning: Function l1_cross_distances is deprecated; l1_cross_distances was deprecated in version 0.18 and will be removed in 0.20.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   12 | 00m39s |    0.91869 |             0.8749 |    0.9086 |          0.0128 |      3.3453 |             3.7902 |      1619.9828 |      0.7039 | \n",
      "-----------------------------------------------------\n",
      "Final Results\n",
      "XGBOOST: 0.920515\n"
     ]
    }
   ],
   "source": [
    "def xgboostcv(max_depth,\n",
    "              learning_rate,\n",
    "              n_estimators,\n",
    "              gamma,\n",
    "              min_child_weight,\n",
    "              subsample,\n",
    "              colsample_bytree,\n",
    "              silent=True,\n",
    "              nthread=-1):\n",
    "    return cross_val_score(xgb.XGBClassifier(max_depth=int(max_depth),\n",
    "                                            learning_rate=learning_rate,\n",
    "                                            n_estimators=int(n_estimators),\n",
    "                                            silent=silent,\n",
    "                                            nthread=nthread,\n",
    "                                            gamma=gamma,\n",
    "                                            min_child_weight=min_child_weight,\n",
    "                                            subsample=subsample,\n",
    "                                            colsample_bytree=colsample_bytree),\n",
    "                           final_train,\n",
    "                           y_train,\n",
    "                           'roc_auc',\n",
    "                           cv=5).mean()\n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    \n",
    "    xgboostBO = bayesian_optimization.BayesianOptimization(xgboostcv,\n",
    "                                 {'max_depth': (3, 7),\n",
    "                                  'learning_rate': (0.01, 0.1),\n",
    "                                  'n_estimators': (1000, 2000),\n",
    "                                  'gamma': (0.01,1.),\n",
    "                                  'min_child_weight': (1, 5),\n",
    "                                  'subsample': (0.7, 0.9),\n",
    "                                  'colsample_bytree' :(0.7, 0.9)})\n",
    "    xgboostBO.maximize(init_points=2, n_iter = 10)\n",
    "    print('-'*53)\n",
    "    print('Final Results')\n",
    "    print('XGBOOST: %f' % xgboostBO.res['max']['max_val'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# use xgb.cv to find the early stopping rounds based on error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "xgdmat = xgb.DMatrix(final_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "our_params = {'eta': 0.0159, 'seed':0, 'subsample': 0.7231, 'colsample_bytree': 0.7032, \n",
    "             'objective': 'binary:logistic', 'max_depth':4, 'min_child_weight':1.2156, 'gamma': 0.1376 } \n",
    "# Grid Search CV optimized settings\n",
    "cv_xgb = xgb.cv(params = our_params, dtrain = xgdmat, num_boost_round = 2000, nfold = 5,\n",
    "                metrics = ['error'], # Make sure you enter metrics inside a list or you may encounter issues!\n",
    "                early_stopping_rounds = 100) # Look for early stopping that minimizes error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>test-error-mean</th>\n",
       "      <th>test-error-std</th>\n",
       "      <th>train-error-mean</th>\n",
       "      <th>train-error-std</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>836</th>\n",
       "      <td>0.137101</td>\n",
       "      <td>0.008698</td>\n",
       "      <td>0.111891</td>\n",
       "      <td>0.002186</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>837</th>\n",
       "      <td>0.137213</td>\n",
       "      <td>0.008836</td>\n",
       "      <td>0.111807</td>\n",
       "      <td>0.002121</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>838</th>\n",
       "      <td>0.137101</td>\n",
       "      <td>0.008932</td>\n",
       "      <td>0.111835</td>\n",
       "      <td>0.002167</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>839</th>\n",
       "      <td>0.136765</td>\n",
       "      <td>0.009355</td>\n",
       "      <td>0.111835</td>\n",
       "      <td>0.002165</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>840</th>\n",
       "      <td>0.136654</td>\n",
       "      <td>0.009075</td>\n",
       "      <td>0.111835</td>\n",
       "      <td>0.002204</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     test-error-mean  test-error-std  train-error-mean  train-error-std\n",
       "836         0.137101        0.008698          0.111891         0.002186\n",
       "837         0.137213        0.008836          0.111807         0.002121\n",
       "838         0.137101        0.008932          0.111835         0.002167\n",
       "839         0.136765        0.009355          0.111835         0.002165\n",
       "840         0.136654        0.009075          0.111835         0.002204"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cv_xgb.tail(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "final_gb = xgb.train(our_params, xgdmat, num_boost_round = 840)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# plot feature importance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import seaborn as sns\n",
    "sns.set(font_scale = 1.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11a0cf050>"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nJYQQQohSJz09nREjhuDntwE7O3sMDWu+sG5UVCRbtvjh6jpS5didO7eJjo7Czs5emWQB1KtXn48/\n7sSRIweL1V5xSaJVivzvf//D3t6epk2bsnjx4kLr7tmzhw8//LBExpGUlMSuXbtKpG0hhBCiKDIy\nMkhNfYKnpzceHp5oaGgUWC93ic8TS8u22NnZqxxPSLgHgIlJI5VjderUJSkpiTt37hS5veKSpcNS\nZOPGjWhqanL48GH09fXf2jh8fHy4ceMGAwcOfGtjEEII8W7T09MjJGQPmpqFpypBQVuIj4/D29uH\n7OxsleMVKlQAIDU1VeVYcvIjABISEnjvvUpFaq+4ZEarFElOTqZJkyYYGxtTtWrVtzYOhULx1voW\nQgghANTV1V+aZEVHR7F5sy8TJkyhZk2jAuvUr98QPT09jh//Md/ft/T0dM6ePQ3kzp4Vtb3ikhmt\nUsLGxoZbt24BEBYWRp06dejVqxd///03x44dQ1NTk969ezNr1iyV//H69+9P+/btmT59OgC7du1i\n9uzZBAcH07p1awDGjBmDsbExHh4exMTEMH/+fP744w+qVavG5MmTmTVrFgEBAZw9e1a5bGhmZsax\nY8d4//33eZE+X+4ricshhBDiHeU/w6ZI9bKzs1m40JPmzVvSt2//F9bT0tJi8GBn/P034unpgYvL\ncHJystm0aR1paWkAaGhoFLm94pIZrVJi165dWFhY0LNnT06dOkWtWrUICAigQYMGhIWFMWvWLEJC\nQjh06JDKuVZWVvz222/K17/99htqamqcPXsWyM3az5w5g62tLampqQwfPhxtbW1CQ0OZP38+K1eu\nVE6Pjhgxgt69e2Nubs6pU6d477333swFEEIIIYohOHgrUVHXGTduIklJSSQlJfH4ce6tGtLTn5KU\nlEROTg4Aw4aNYtAgR3788b+4ujowfLgzampqODsPBaBKlSrFaq84ZEarlKhWrRpaWlro6upiaGiI\nhoYGTZo0wc3NDQBjY2M2b97Mn3/+ySeffJLvXGtra9atW0diYiLVqlXj9OnT2NjY8PvvvzN+/HjO\nnj2LtrY2FhYW7N+/n+TkZJYuXYq+vj6mpqbMmTOHcePGAblr4rq6umhpaWFoaPjGr4MQQoh3m6Fh\nwXuUNTTU0dbWVB6/cOEsmZmZjB7tqlI3OHgrwcFb863KzJ8/j88/n0hsbCzvvfcederUYfny5Who\n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\naNGiVZXkLwhCoQo1Wg8ePHhrTGVcBqtKzZs3p0+fPri6urJkyRLU1dVZu3YtqqqqqKmpERUVhYmJ\nCfn5+ezatYvLly/Tvn37ImO4urri6uqKnJwcbm5utGvXrsjlxNdeX1qNjY2lRYsWaGtrExMTw7Vr\n11BUVOTw4cNERERUyny37t2707FjR2bPno2zszOqqqr4+fmRkZHByJEjUVNT46effuLVq1dMmFD4\nGo6ffvqJpk2boq6uTmpqKt7e3igpKdG6dWvi4uJISUlh/Pjx752bIAgV9+DBfXJycmjQoPQ3brwt\nRkZGBienOSxcOBcHBzvMzQeTn5/HkSMHSU6+ycKFbmWe5RcE4f1V6BPWs2fPYmdp3nT16tX3SuhD\nWLZsmeTuv7y8PLp27UpAQADp6em4ublhaWlJ3bp1MTQ0ZNasWWzatImsrCzJ9kOGDGHGjBlkZmbS\nu3dvnJ2dS7x02K1bNwwNDfn222+ZNWsWCxcuxMXFhVGjRlGnTh0MDAxwc3Nj0aJFxS5PVpSUlBQ+\nPj54enoyceJE8vLy6NSpEyEhITRp0gSAzZs3s2LFCkaMGEF+fj6Ghob4+/sjLS3NpEmTePnyJa6u\nrjx+/JiGDRsybdo0LC1L/9e0IAhVJz09DQAlpeJzYSsS07Nnb9as8WXr1s34+/sC0Lr1F6xYsY7u\n3Yu/Tk0QhMolVVCB61b79u0r1mi9ePGCixcvEh0djYeHB7169arsHD8a0dHRjB49mtOnT4v3Ov5L\nbZsX81ptnPMDoq6aqLbWJuqqeWprbR/NZPihQ4eWuNzGxgZPT08OHTpUqxutD+nx48dlzt2Sk5MT\nj14QBEEQhI9cpV2cNzU1xdGx9PdwCRVjYmJCXl5eqes7derErl27PmBGgiAIgiBUVKU1Wn/88Uet\nn1TZrVs3/v777w+yr7i4uA+yH0EQBEEQqk6FOqOFCxcWW5aXl8f9+/c5f/48VlZWlZaYIAiCIAhC\nTVehRuvs2bPFlklJSaGiooK9vT2TJk2qtMQEQRAEQRBqugo1WidPnqyqPARBEKpcamoq/v6+REWd\nITs7m9at9Zg4cQrt2v3zrLzo6HNs3x7I339fRVpamjZt2mFvP5m2bdsVGSsm5jcCAjaRkHAdZWVl\nevf+Gnv7ySgpKX3osgRB+Ii9/b0x/zJ69GgSExNLXHft2jUGDx5cKUkJgiBUthcvnjN1qj0nTx5n\n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\nI1JoCSGEEELoiBRaQgghhBA6IoWWEEIIIYSOSKElhBBCCKEjUmgJIYQQQuiIFFpCCCGEEDoihZYQ\nQgghhI5IoSWEEEIIoSNSaAkhhBBC6IgUWkIIIYQQOmKklFKVPQkhhBBCCEMkK1pCCCGEEDoihZYQ\nQgghhI5IoSWEEEIIoSNSaAkhhBBC6IgUWkIIIYQQOiKFlhBCCCGEjkihJf6RgoICli5dipubG87O\nzkyaNIkbN25U9rTKdOPGDWbOnImbmxsdO3Zk9OjRJCQkaPqPHDnCSy+9RLt27fD39+fw4cNa26el\npTF58mQ6duyIq6srS5YsIT8/v6Jj/K1ffvmFZ555hqNHj2ra9Dnb9u3b6dmzJ+3ataNv3778+OOP\nmj59znX37l3mz5+v+XkcM2YMSUlJmn59zDZ37lzmzJmj1VYeOT766CO8vb1p3749o0aNIiUlRddR\ntJSWa/Pmzfj6+uLk5ISfnx/bt2/X6tfXXMXy8vLo06cPs2bN0mrXh1xQerakpCQCAgJo37497u7u\nLF++nMLCQk2/zrIpIf6BsLAw1bVrV3XkyBF1+vRpNWDAADV48ODKntYDFRQUqEGDBqmBAweqX3/9\nVSUmJqpJkyYpV1dXlZ6erhITE5WDg4OKiIhQSUlJKiwsTNnb26uEhATNPoYMGaJeeeUVFR8frw4d\nOqSee+45tWzZskpMVVJWVpbq3r27srOzUz/99JNSSul1tp07dyp7e3u1fft2lZKSohYuXKicnJxU\namqqXudSSqnZs2crX19fFRcXp5KSklRgYKDy9PRU2dnZepetsLBQLV++XNnZ2anZs2dr2ssjx7Zt\n25Szs7P6z3/+o86ePavGjh2runXrpnJyciot15YtW5STk5OKjY1Vv//+u9q2bZuyt7dXu3bt0utc\n9/vggw+UnZ2dmjlzplZ7Vc6l1IOzpaWlqeeee05NmTJFJScnqy+//FJ16NBBrV27VufZpNASjywn\nJ0c5OzurHTt2aNpSU1OVnZ2dOnHiRCXO7MHOnDmj7OzsVFJSkqYtJydHtW/fXu3atUuFhoaqYcOG\naW0zbNgwFRISopRS6uTJk8rOzk5dvHhR079z507l7OxcYQeQh1Gc4/5CS1+zFRYWKm9vb7V8+XJN\nW0FBgXrxxRfVnj179DZXMRcXF7Vp0ybNvxMTE5WdnZ06ffq0XmW7ePGiGjZsmOrcubPy8vLS+nAr\n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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11a0c3910>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "xgb.plot_importance(final_gb)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'age': 1340,\n",
       " 'capital_gain': 1051,\n",
       " 'capital_loss': 778,\n",
       " 'education': 344,\n",
       " 'education_num': 844,\n",
       " 'fnlwgt': 1494,\n",
       " 'hours_per_week': 844,\n",
       " 'marital_status': 511,\n",
       " 'native_country': 277,\n",
       " 'occupation': 984,\n",
       " 'race': 196,\n",
       " 'relationship': 623,\n",
       " 'sex': 143,\n",
       " 'workclass': 445}"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "importances = final_gb.get_fscore()\n",
    "importances"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11c184310>"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlUAAAHWCAYAAABeynxZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlYVeX+///nFsEBKdRQyxSnIv0ACiJqBQkdJ9RySA/h\nhDiQlB08liNWoIk4HAccwrCMBE9IBHYwbDqZnBzSTOmLHAyExEpRHHJIEPj90c+dHNTANjK9Htfl\nde299tr3er9XXvna67732oaSkpISRERERORPqVfVBYiIiIjUBgpVIiIiIiagUCUiIiJiAgpVIiIi\nIiagUCUiIiJiAgpVIiIiIiZQv6oLkJrt2rUizp69XNVlVKqmTRurx1pAPdYO6rF2qOk92thY3XS7\nrlTJn1K/vllVl1Dp1GPtoB5rB/VYO9TWHhWqRERERExAoUpERETEBBSqRERERExAoUpERETEBBSq\nRERERExAoUpERETEBAwlJSUlVV2E1GAxhqquQERE5Kby+l6olHF1nyoRERGRSqRQVY38v//3//Dy\n8sLe3p6wsLDb7hsfH0+XLl0qpY5z584RFxdXKWOLiIjUVvqZmmpkw4YN1K9fn+3bt2NldfNLi3fD\nsmXLyMnJ4ZlnnqmyGkRERGoahapq5MKFC3Tu3Jm2bdtWaR1aZiciIlJxmv6rJjw9Pfnqq69ISEjA\nzs4OT09Pli9fzssvv4yzszOurq6EhIRw7dq1Mu8dNmwYS5YsMT6Pi4vDzs6OAwcOGLdNmTKFhQsX\nAnDs2DH8/Pzo1q0bnp6eJCQk0KVLF/bu3Ut4eDhxcXHs27cPOzs7cnNzK795ERGRWkChqpqIi4vD\nxcWFgQMHkpKSQqtWrXj77bdp3749CQkJzJ07ly1btpCUlFTmvX369GH37t3G57t378ZgMLBv3z4A\nrl69yt69e3nyySe5fPkyEyZMwMLCgtjYWBYsWMDq1aspKioCwM/Pj8GDB+Pk5ERKSgr333//3TkB\nIiIiNZym/6qJZs2aYW5uTsOGDbGxscHMzIzOnTsTEBAAQNu2bdm0aRPffvstTz/9dKn3enh4sH79\nevLz82nWrBl79uzB09OTr7/+mqlTp7Jv3z4sLCxwcXFh27ZtXLhwgaVLl2JlZcXDDz/M/Pnzee65\n5wCwtLSkYcOGmJubY2Njc9fPg4iIiKnc6tYHlUWhqhpr165dqedWVlYUFhaW2c/BwYHmzZuzZ88e\nOnXqxNWrVxk7diwBAQEUFhayc+dO3NzcMDc3Jy0tjY4dO5ZaCN+9e/fKbkVEROSuy8v7pVLG1X2q\naiALC4sy2262iNxgMODu7s5//vMfdu/eTY8ePejevTvFxcWkpqaya9cuPD09ATAzM6O4uLjSaxcR\nEalrFKpqCQ8PD7766iv27dtHr169sLCwwNnZmdjYWHJzc3F3dwfAzs6OrKwsfvnl9/R+6NChUmMZ\nDLpLuoiISEUpVNUSjz32GHl5eXz55Zf07NkTgN69e5OYmIiLiwv33HMPAIMHD+aee+5h1qxZZGRk\nsGfPHhYsWAD8HqYsLS05efIkx48fv+m3DUVERKQshapawtLSEldXVywtLbGzswOgV69eFBcXG6f+\nABo0aMCbb77JhQsXGDFiBHPnzmXUqFEAmJubAzB8+HCKiorw8vIiLS3t7jcjIiJSA+kHleuYEydO\n8MMPP9C7d2/jtm+//Za//vWvfPHFFxW/hYJ+UFlERKop/aCyVKpff/0VPz8/oqOjyc3N5fDhwyxe\nvJgePXronlQiIiJ/gq5U1UHbt2/njTfeIDs7m8aNG+Ph4cHLL79Ms2bN7mi8yvrKanVhY2OlHmsB\n9Vg7qMfaoab3eKsrVbpPVR3k5eWFl5dXVZchIiJSq2j6T0RERMQEFKpERERETEChSkRERMQEFKpE\nRERETEChSkRERMQEFKpERERETEChSkRERMQEFKpERERETEChSkRERMQEFKpERERETEChSkRERMQE\nFKpERERETEChSkRERMQEFKpERERETKB+VRcgNVyMAZuqruEuUI+1g3qsHdRj1crre6GqS6i2dKVK\nRERExAQUqkRERERMQKFKRERExAQUqkRERERMQAvVa4n09HSWL1/OwYMH+fXXX2ndujVTp05l6NCh\nXLt2jRUrVvDBBx9w5coVBgwYQEFBAebm5ixevBiA/fv3s2zZMtLS0rCxscHLy4sXXniBBg0aVHFn\nIiIiNYOuVNUCly9fxs/PjxYtWhAbG0tiYiI9evQgKCiI06dPs2zZMhISEnj99deJjY2loKCApKQk\n4/uPHDnCxIkT6du3Lx9++CELFy7k3//+N6+99lrVNSUiIlLDKFTVAleuXMHX15egoCA6dOhAx44d\n8ff3p7CwkKysLLZs2cL06dPx8PDgoYceIjQ0FBub37+wu3HjRp544gkmTpyIra0tvXv3Jjg4mPj4\neE6dOlWFnYmIiNQcmv6rBZo3b46Pjw8JCQkcOXKE7Oxs0tPTAfjuu+/49ddfcXJyMu5vYWGBg4OD\n8fmRI0fIyckptU9JSQkAmZmZtGjR4i51IiIi1Z2NjVW1Gqc6UaiqBU6ePIm3tzctW7bEw8ODPn36\n0KJFC0aMGIGZmRkAxcXFt3y/ubk5Q4cOZfLkyWVeu/GKloiISF7eL396DBsbK5OMU1VuFQg1/VcL\nJCUlcenSJaKjo/H398fT05OzZ88CYGtrS8OGDTl06JBx/8LCQtLS0ozPO3XqRGZmJra2tsY/+fn5\nhIWFcenSpbvej4iISE2kK1W1QKtWrbh48SI7duyga9eupKen8/rrrwNQr149fHx8WLlyJffddx9t\n2rQhMjKSn376CYPBAMDkyZMZPnw4oaGhjBo1ijNnzhAUFETLli11pUpERKScFKpqgYEDB5KamsrC\nhQu5fPkybdu2JSAggA0bNpCamsr06dMpKChg5syZFBYWMnjwYJycnDA3NwfAzs6OiIgIVq1aRUxM\nDFZWVnh4eDBz5swq7kxERKTmMJRcX5Estdann35K9+7dadq0qXHbgAEDGDJkCM8///yfGzzG8Cer\nExGRmsQUP6hcW9dU6UpVHfDmm28SFxfH3//+dxo2bEh8fDy5ubkMGDCgqksTERGpNXSlqg44fvw4\nixYt4sCBAxQUFPDII48QGBhIr169TDJ+Tf60UR41/RNVeajH2kE91g7qsfrTlao6rE2bNqxfv76q\nyxAREanVdEsFERERERNQqBIRERExAYUqERERERNQqBIRERExAYUqERERERNQqBIRERExAYUqERER\nERNQqBIRERExAYUqERERERNQqBIRERExAYUqERERERNQqBIRERExAYUqERERERNQqBIRERExgfpV\nXYDUcDEGbKq6hrtAPdYO6rF2uJMe8/peMHkdIv9LV6pERERETEChykQ8PT1Zt24dANeuXWPTpk3l\nfm9ubi52dnbs37+/kqora+zYscybN++uHU9ERKS20/SficTFxdGwYUMAtm/fTmhoKL6+vlVb1G2E\nh4dTv77+84uIiJiK/lU1kWbNmhkfl5SUVGEl5WNtbV3VJYiIiNQqdWr67+LFiwQHB/Poo4/i5OTE\nxIkTycrKori4mHXr1tGvXz/s7e1xcXFh2rRp5OfnA7B37166dOlCcnIynp6eODk54e/vz08//WQc\n+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\nm2++KbX9wIED2NjYcO+9997BGam4PzoHIiIiUjmqVajq3bs33bp1IzAwkP3793Ps2DGCgoL4/PPP\nefjhh/Hz8yMqKoqEhASysrJYsGABP/74o/H9Dz/8MI0bN+aNN97ghx9+4Msvv+Ttt982vt64cWN8\nfHxYsWIFO3fuJDs7m5CQEM6fP0/Pnj1p1aoVBw4cID09nezsbNasWcP27dspKCgwjmFpacn3339v\nnM670dSpU4mKimLr1q3k5OQQGxvL5s2b8fX1vWUYM7U/OgciIiJSOapVqDIYDKxdu5ZOnToREBDA\nsGHDyM7OZuPGjXTq1AlfX19efPFFVq5cybBhw7h06ZJxwTn8drVo6dKlfPfdd3h5ebF69Wrjeqnr\nXn75ZQYOHMjcuXMZOnQomZmZbNy4kfvuu4/58+djZWWFt7c3zz77LKmpqYSEhHDmzBljeJs8eTJb\ntmxh4sSJZer39vZm+vTpREREMGjQIN5++21mz57NpEmTKvfE3aA850BERERMz1BS0QU9IjeKuTtX\n4ETE9GriDyrX9LU45aEeq79bramqVgvV67LCwsI//LZd48aNsbS0vEsViYiISEUoVFUThw4dYvTo\n0bfd57nnnmP69Ol3qaJy8imp0Z82yqOmf6IqD/VYO9SFHkWqM4WqasLFxYX//ve/VV2GiIiI3KFq\ntVBdREREpKZSqBIRERExAYUqERERERNQqBIRERExAYUqERERERNQqBIRERExAYUqERERERNQqBIR\nERExAYUqERERERNQqBIRERExAYUqERERERNQqBIRERExAYUqERERERNQqBIRERExgfpVXYDUcDEG\nbKq6hrtAPdYO6rG0vL4XKq0OkbpIV6pERERETEChSkRERMQE7mqosrOzIzEx8W4eUsopPj6eLl26\nVHUZIiIiNZauVImIiIiYgEKViIiIiAnc9VCVmZnJ2LFjcXBwwNPTk7i4uFKvx8XFMXjwYBwdHenb\nty+bN282vnazKar/3WZnZ8eqVatwd3fH3d2dvLw84uPjGThwIPb29nh4eLB69WqKi4vLVW9ubi52\ndnZ8+OGHDBw4kK5duzJ27Fj++9//GvcpLi7mjTfewMPDg27dujFixAh27txZqsb+/fvz2muv0b17\nd2bOnPmHxx02bBhLliwpdV7s7Ow4cOCAcduUKVNYuHAhAD/99BMvvvgizs7OPProo0yfPp2TJ0+W\n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\nihQpwpAhQzh06BCHDh1iyJAhFChQwFSHt7c3ERER7N+/n2PHjjFixAhy5cr1UOfJ2dmZmJiYB4ax\nzp07s2HDBtLT02nWrNlDHUNERORZZvWhysHBgdmzZ3Po0CHatWtHYGAgBQsWpHfv3qarQ5UqVaJV\nq1YMHjzY9I24f2rYsCH58+enadOmFC5c2DTu4eHBokWL2LdvHx07duSDDz6gTp06zJs3L9s1vvTS\nS4wZM4YVK1bQtm1bPv/8c6ZOnUrDhg3JkycPy5Ytw9HRke7du9OzZ09cXFxYtWoVBQoUAGDIkCFU\nrlyZt956i169elGzZk1q1qz5UOepX79+rF692jTh/l6aNWuGk5MT7dq1u+stRREREbk7O0NPhZS/\nuXjxIk2aNGHNmjVUq1btwRuEPvi2otxdUovUnC7BxNonjWaHerQN6tE2WHuPVj9R/WmUkZHBpUuX\n7rtOvnz57niMw9Po4sWL7Nq1i7CwMDw9PbMXqERERMREoeoRHDhw4IHPkRowYACDBw9+QhX9e7du\n3WL06NEUL17c7AGhDxRgWPWnjeyw9k9UIiLyZChUPYLatWtz9OjRnC7DIlxdXdmzZ09OlyEiImK1\nrH6iuoiIiMjTQKFKRERExAIUqkREREQsQKFKRERExAIUqkREREQsQKFKRERExAIUqkREREQsQKFK\nRERExAIUqkREREQsQKFKRERExAIUqkREREQsQKFKRERExAIUqkREREQsIHdOFyBWLtQO15yu4TFK\napGa0yWIiIiV0JUqEREREQtQqBIRERGxAIUqEREREQtQqBIRERGxAIUqEREREQtQqLJCHh4ezJkz\nB19fX3x9fUlKSuLIkSP069eP2rVr4+npSatWrQgLCzNtYxgGK1asoGXLltSoUYNXXnmF7du3m5ZH\nR0fTp08fatSoga+vL2PGjCE1Vd98ExERyS6FKiu1bt06Fi1axLx583B2dqZ3794UL16ctWvXsmnT\nJurUqUNQUBAXLlwAYMmSJcydO5fAwEA2b95M69ateffddzl27Bjnzp2jR48euLu7s3HjRubOnUtM\nTAzvvfdeDncpIiJiPfScKivVqVMnqlSpAkBycjJvvfUWPXr0IG/evAD079+fdevWERcXR9GiRVm5\nciW9evWiY8eOALzzzjvcunWLa9eu8c0331C2bFmGDx9u2v+sWbPw9fVl//79+Pj4PPkGnxKuri5m\n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\ngKpVq7J3715Wr15tEz0mJiYSHBxMaGgo3t7eAMyYMYM2bdqwYsUKm+jxnx61JycnJ9M299rH0yIx\nMZG+ffty48YNvvzyS1xcXADr7zElJYXg4GAmTZpEoUKF7rqOtfd4L7pSJQ+tVKlSACQlJZmNnz9/\n/o5LtU+zhQsXMnLkSPz9/Zk6darpdmCpUqU4f/682bp/761kyZJ37R3uvFSdUzZs2MC5c+dMj7xo\n3bo1AP369WPMmDE20eNftwrc3d1NY3Z2djz//POcPHnSJno8ePAgmZmZeHp6msYcHByoUqUK8fHx\nNtHjPz1qT9by++nQoUO8/vrr2Nvb89VXX5ndDrT2Hrdv305ycjKDBw/Gx8cHHx8fdu3axebNm/Hx\n8QGsv8d7UaiSh1a5cmWcnZ3ZtWuXaezkyZOcOnWKOnXq5GBl2bdkyRJmz57NoEGDCA4ONk1UB6hV\nqxa7d+82W3/nzp3Url3btDwxMdFsTsrOnTtxdnamcuXKT6aBB5g+fToRERGEhYURFhbG0qVLAZg4\ncSLvv/++TfRYrVo18uXLR2RkpGnMMAxiY2MpV66cTfRYsmRJAI4ePWoa+6vH8uXL20SP//SoPRUt\nWpTy5cub/X66evUqBw8efGp+P8XGxtK7d2/KlClDaGioKUD8xdp7bNGiBd9//73p909YWBheXl74\n+fkRFhYGWH+P95Rj3zsUqzZt2jSjYcOGxvbt203Pqfrn16CfVlFRUUaVKlWMkSNHGufPnzf7c/Xq\nVePIkSNGtWrVjDlz5hgxMTHG7NmzjerVq5sewZCVlWV07drVeP31142DBw+anq/y96/+Pm3OnDlj\n9kgFW+lx1qxZRp06dYytW7caJ06cMD755BOjevXqRmxsrE30eOvWLaNr165Gu3btjN27dxsxMTFG\ncHCw4e3tbZw8edImeuzevbvZV/Et0VNoaKjh7e1tfPPNN8bRo0eN/v37Gy1btsyxx0j8s8dXX33V\naNy4sXH8+HGz3z/JycmGYdhGj//Us2dPs0cqWGOP2aFQJf9KRkaGMXnyZKNu3bpGzZo1jffff9/0\nC+FpN2PGDMPd3f2uf+bPn28YhmH8+OOPRps2bQxPT0+jQ4cOxq+//mq2j/PnzxuBgYFGjRo1jIYN\nGxozZswwMjMzc6KdbPlnqDIM2+gxKyvL+PTTT42mTZsanp6eRpcuXYzdu3eblttCj8nJycbo0aON\nJk2aGLVq1TJ69uxpHD582LTc2nu823+MLdHTp59+ajRq1Mjw9vY2evfubfY8pCft7z0eP378nr9/\nXnrpJdM21tzj3fwzVBmG9fWYHXaGYRg5fbVMRERExNppTpWIiIiIBShUiYiIiFiAQpWIiIiIBShU\niYiIiFiAQpWIiIiIBShUiYiIiFiAQpWIiIiIBShUiYiIiFiAQpWIiIiIBfx/w+VuBH29oagAAAAA\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x114dd68d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "importance_frame = pd.DataFrame({'Importance': list(importances.values()), 'Feature': list(importances.keys())})\n",
    "importance_frame.sort_values(by = 'Importance', inplace = True)\n",
    "importance_frame.plot(kind = 'barh', x = 'Feature', figsize = (8,8), color = 'orange')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#Analyze auc score on Test Data,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "testdmat = xgb.DMatrix(final_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.00349568, 0.21277116, 0.27799502, ..., 0.2807179 , 0.05699133,\n",
       "       0.33776566], dtype=float32)"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "y_pred = final_gb.predict(testdmat) # Predict using our testdmat\n",
    "y_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 0., ..., 0., 0., 0.], dtype=float32)"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred[y_pred > 0.5] = 1\n",
    "y_pred[y_pred <= 0.5] = 0\n",
    "y_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7814207036079578"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import roc_curve, auc, roc_auc_score\n",
    "false_positive_rate, true_positive_rate, thresholds = roc_curve(y_test, y_pred)\n",
    "auc(false_positive_rate, true_positive_rate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7814207036079578"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "roc_auc_score(y_test, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
